'use strict';

// 加载环境变量
require('dotenv').config();

module.exports = appInfo => {
  const config = exports = {};

  config.keys = appInfo.name + '_1234567890';

  // 修改端口配置
  config.cluster = {
    listen: {
      port: 7002,
      hostname: '127.0.0.1',
    },
  };

  config.middleware = [];

  const userConfig = {
  };

  // 跨域配置
  config.cors = {
    origin: (ctx) => {
      // 允许的前端地址
      const allowedOrigins = [
        'http://localhost:5173', // frontend 开发服务器
        'http://127.0.0.1:5173',
        'http://localhost:5174', // admin 开发服务器
        'http://127.0.0.1:5174',
      ];
      const origin = ctx.get('origin');
      if (allowedOrigins.includes(origin)) {
        return origin;
      }
      return allowedOrigins[0]; // 默认返回第一个
    },
    credentials: true, // 允许携带 cookie
    allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH',
  };

  // 安全配置
  config.security = {
    csrf: {
      enable: false,
    },
  };

  // Session 配置
  config.session = {
    key: 'TRAVE_DIARY_SESS',
    maxAge: 24 * 3600 * 1000, // 24小时
    httpOnly: true,
    encrypt: true,
    renew: true, // 自动续期
  };

  // JWT 配置
  config.jwt = {
    secret: 'trave-diary-secret-key-2025', // JWT 密钥
    expiresIn: '7d', // Token 有效期 7天
  };

  // 七牛云配置
  config.qiniu = {
    accessKey: '6x5_IMO5EMt1ucckRGgY0sNPhHQ-T-XdKCe8o-XZ',
    secretKey: 'QyHbxZVFiDuGwzmD4T2tn8aNVoyDC4RBYC476hnt',
    bucket: 'xiaozhuangsite',
    domain: 'https://cdn.xiaozhuang.site',
    // 上传策略配置
    policy: {
      expires: 7200, // 2小时过期
      scope: 'xiaozhuangsite',
    },
  };

  // 文件上传配置
  config.multipart = {
    mode: 'stream',
    fileExtensions: ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp', '.svg', '.mp4', '.avi', '.mov'],
    fileSize: '50mb',
    whitelist: ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp', '.svg', '.mp4', '.avi', '.mov'],
  };

  // 腾讯云内容安全配置
  config.tencentCloud = {
    secretId: process.env.TENCENT_SECRET_ID || 'YOUR_SECRET_ID',
    secretKey: process.env.TENCENT_SECRET_KEY || 'YOUR_SECRET_KEY',
    region: process.env.TENCENT_REGION || 'ap-guangzhou',
    // 内容安全服务配置
    cms: {
      // 文本内容审核
      textModeration: {
        bizType: process.env.TENCENT_TEXT_BIZ_TYPE || '', // 业务类型（可选）
      },
      // 图片内容审核
      imageModeration: {
        bizType: process.env.TENCENT_IMAGE_BIZ_TYPE || '', // 业务类型（可选）
      },
    },
  };

  return {
    ...config,
    ...userConfig,
  };
};
